在複習小考頁面加入模式選擇,錯題重練模式只會出現曾經答錯的題目。
<!-- quiz.html -->
{% if mode == 'selection' %}
<!-- 模式選擇畫面 -->
<div>
<h1>🩺 測驗模式選擇</h1>
<p>請選擇您要開始的練習模式。</p>
<div>
<!-- 隨機出題 -->
<a href="{{ url_for('quiz', mode='normal') }}">
<div>
隨機模擬測驗
<div>從所有題庫中隨機選取題目,進行全面測試。</div>
</div>
</a>
<!-- 錯題重練 -->
<a href="{{ url_for('quiz', mode='practice') }}">
<div>
錯題重練模式
<div>僅包含過去答錯的題目,加強弱點。</div>
</div>
</a>
</div>
</div>
{% else %}
# views.py
@app.route('/quiz')
def quiz():
# 預設模式為 'selection',顯示模式選擇畫面
mode = request.args.get('mode', 'selection')
if mode == 'selection':
return render_template('quiz.html',
title='選擇測驗模式',
quiz_data=None,
mode='selection')
all_questions = KNOWLEDGE_BASE
quiz_data = []
title = '隨機模擬測驗'
# 錯題重練
if mode == 'practice':
title = '錯題重練模式'
# 選擇 error_count 大於 0 的題目
for question in all_questions:
if question.get('error_count', False) > 0:
quiz_data.append(question)
if not quiz_data:
# 如果沒有錯題,返回選擇頁面
return render_template('quiz.html',
title='無錯題可練',
quiz_data=None,
mode='selection',
error_message='目前沒有收藏或答錯的題目,請選擇隨機出題。')
# 隨機題目
else: # mode == 'normal' (預設為隨機出題)
quiz_data = all_questions
return render_template('quiz.html',
title=title,
quiz_data=quiz_data,
mode=mode)